Uma estrutura de dados heterogenia mutável que preserva ordem dos elementos.
2 ou mais diferentes tipos de dados podem estar simultaneamente na lista
Os dados podem ser alterados depois da criação da lista
Os dados permanecem na mesma ordem de sua criação, concatenação, enfim
In [1]:
[] # empty list
Out[1]:
In [2]:
type([])
Out[2]:
In [3]:
[1, 2, 3, 4] # list of integers
Out[3]:
In [4]:
['a', 'b', 'c', 'b'] # list of strs
Out[4]:
In [5]:
[1, 2, 'a', 'b', [42, 6/7, 'text']] # mixed lists
Out[5]:
In [2]:
lst = []
for i in range(10):
if i % 2:
lst.append(i)
print(lst)
In [8]:
list(range(10))
Out[8]:
In [9]:
[1 for i in range(10)]
Out[9]:
In [10]:
[i for i in range(10) if i % 2]
Out[10]:
In [11]:
[i ** 2 for i in range(10) if i % 2]
Out[11]:
In [12]:
["red" if i % 2 else "blue" for i in range(10)]
Out[12]:
In [13]:
["red" if i % 2 else "blue" for i in range(10) if i > 5]
Out[13]:
In [6]:
dir(list) # Available methods
Out[6]:
In [6]:
lst = [i for i in range(10) if i % 2] # odd numbers
lst.append(0xc0ffee)
lst
Out[6]:
In [5]:
lst = [i for i in range(10) if i % 2] # odd numbers
new_lst = [i for i in range(10) if i % 2 == 0] # even numbers
lst.extend(new_lst)
lst
Out[5]:
In [14]:
lst = [1, 3, 5, 7, 9]
In [15]:
1 in lst
Out[15]:
In [16]:
4 in lst
Out[16]:
In [7]:
lst = [1, 3, 5, 7, 9]
In [8]:
lst.index(1) # The first element has index 0
Out[8]:
In [9]:
lst.count(3) # How many time the given element appear in such list?
Out[9]:
In [10]:
lst.count(4)
Out[10]:
In [11]:
#lst.index(4)
#---------------------------------------------------------------------------
#ValueError Traceback (most recent call last)
#<ipython-input-14-9e4c9bbba08f> in <module>()
#----> 1 lst.index(4)
#
#ValueError: 4 is not in list
In [21]:
sum(lst) # Sum of each element
Out[21]:
In [22]:
min(lst)
Out[22]:
In [23]:
max(lst)
Out[23]:
In [24]:
len(lst)
Out[24]:
In [25]:
for i in lst:
print(i, end=' ')
In [26]:
for i in lst:
i *= 2
In [27]:
lst
Out[27]:
In [28]:
lst * 2
Out[28]:
In [29]:
#lst + 2
#---------------------------------------------------------------------------
#TypeError Traceback (most recent call last)
#<ipython-input-24-33a94180b36b> in <module>()
#----> 1 lst + 2
#
#TypeError: can only concatenate list (not "int") to list
In [30]:
for i in range(len(lst)):
lst[i] *= 2
lst
Out[30]:
In [31]:
lst1 = [i for i in range(10) if i % 2]
lst1
Out[31]:
In [32]:
lst2 = [i * 2 for i in range(10) if i % 2]
lst2
Out[32]:
In [33]:
lst == lst2
Out[33]:
In [34]:
lst is lst2
Out[34]:
In [35]:
lst3 = [0] * len(lst1)
for index, value in enumerate(lst1):
lst3[index] = value * 2
lst3
Out[35]:
In [36]:
# slicing
lst
Out[36]:
In [37]:
lst[1:2]
Out[37]:
In [38]:
lst[:2]
Out[38]:
In [39]:
lst[1:]
Out[39]:
In [40]:
lst[:-1]
Out[40]:
In [41]:
lst[::-1]
Out[41]:
In [42]:
# indexing
lst
Out[42]:
In [43]:
len(lst)
Out[43]:
In [44]:
lst[0]
Out[44]:
In [45]:
lst[len(lst) -1]
Out[45]:
In [46]:
lst[-1]
Out[46]:
In [47]:
lst[-2]
Out[47]:
In [48]:
#lst[13]
#---------------------------------------------------------------------------
#IndexError Traceback (most recent call last)
#<ipython-input-44-148af8a65684> in <module>()
#----> 1 lst[13]
#
#IndexError: list index out of range
In [49]:
#lst[-9]
#---------------------------------------------------------------------------
#IndexError Traceback (most recent call last)
#<ipython-input-45-1b205bc9ac28> in <module>()
#----> 1 lst[-9]
#
#IndexError: list index out of range
In [50]:
#lst[1, 3]
#---------------------------------------------------------------------------
#TypeError Traceback (most recent call last)
#<ipython-input-46-b9ef5c5bd789> in <module>()
#----> 1 lst[1, 3]
#
#TypeError: list indices must be integers or slices, not tuple
In [51]:
#lst > 3
#---------------------------------------------------------------------------
#TypeError Traceback (most recent call last)
#<ipython-input-47-95398925f275> in <module>()
#----> 1 lst > 3
#
#TypeError: unorderable types: list() > int()
In [52]:
lst1
Out[52]:
In [53]:
lst2
Out[53]:
In [54]:
lst1 + lst2
Out[54]:
In [55]:
#lst1 * lst2
#---------------------------------------------------------------------------
#TypeError Traceback (most recent call last)
#<ipython-input-79-67c3fb65c435> in <module>()
#----> 1 lst1 * lst2
#
#TypeError: can't multiply sequence by non-int of type 'list'
In [56]:
lst
Out[56]:
In [57]:
lst1 = [True if _ > 10 else False for _ in lst]
lst1
Out[57]:
In [58]:
#lst[l1]
#---------------------------------------------------------------------------
#TypeError Traceback (most recent call last)
#<ipython-input-82-4bb6def646de> in <module>()
#----> 1 lst[lst1]
#
#TypeError: list indices must be integers or slices, not list
In [59]:
lst1 = lst
In [60]:
id(lst)
Out[60]:
In [61]:
id(lst1)
Out[61]:
In [62]:
lst1[2] = .79
In [63]:
lst
Out[63]:
In [64]:
lst1 = lst.copy()
In [65]:
id(lst1)
Out[65]:
In [66]:
lst1[2] = 379
In [67]:
lst1
Out[67]:
In [68]:
lst
Out[68]:
In [69]:
lst1 = lst[:]
In [71]:
id(lst1)
Out[71]:
In [73]:
lst is lst1
Out[73]:
In [74]:
lst
Out[74]:
In [75]:
list(map(lambda x: x * 2, lst))
Out[75]:
In [76]:
lst = list(range(10))
In [77]:
lst.remove(2)
In [78]:
lst
Out[78]:
In [79]:
#lst.remove(-1)
#---------------------------------------------------------------------------
#ValueError Traceback (most recent call last)
#<ipython-input-6-9cb22bf5b017> in <module>()
#----> 1 lst.remove(-1)
#
#ValueError: list.remove(x): x not in list
In [80]:
del lst # Deleting the whole list
In [82]:
#lst
#---------------------------------------------------------------------------
#NameError Traceback (most recent call last)
#<ipython-input-11-12f54a96f644> in <module>()
#----> 1 lst
#
#NameError: name 'lst' is not defined
In [88]:
#lst = list(range(10))
#lst[len(lst)] = 'new_value'
#---------------------------------------------------------------------------
#IndexError Traceback (most recent call last)
#<ipython-input-87-c4d3abf378eb> in <module>()
# 1 lst = list(range(10))
#----> 2 lst[len(lst)] = 'new_value'
#
#IndexError: list assignment index out of range
In [90]:
lst = list(range(10))
lst[1:6] = ['a', 'b', 'c', 'd', 'e']
lst
Out[90]: